【レポート】【re:Mars 2019】「Voice Control for Any Thing」で #Alexa のワークショップに参加してきた。#reMARS #AlexaDevs
せーのでございます。
只今私はAmazon初めてのAI・機械学習系カンファレンス「re:Mars 2019」に参加するため、アメリカはラスベガス「Aria Casino & Resort」に来ております。
このエントリーでは1日目に行われたワークショップ「Voice Control for Any Thing」をレポート致します。
会場
会場はAriaのConvention Center。「Jupitar 4」という少し広めの場所でした。
会場につくと、各テーブルにはモニター、キーボード、マウスが配置されており、てっきりノートPCを見やすくするためかと思ったら、後にラズパイ用だと判明しました。
講師はAmazonのソリューションアーキテクト、Eric Fahsl氏。まずはAlexaに関するプレゼンテーションを聞いてからワークショップに入ります。9時スタート、17時終了という長丁場です。
セッション
- 今日やること
- AVSを「CanaKit」というLED付きのラズパイにセットアップする
- カスタムスキルを作成する
- AWS IoTを連携させてAlexaからラズパイにつながっているLEDを操作する
- なぜVoiceなのか
- 声によるコミュニケーションズは非常に自然なインターフェース
- インターフェースの歴史からVUIはこれから必ず来る
- Amazon Echo
- Echoは2014年に登場した
- 現在は14の国でサポートされ、60000以上のAlexaで動く製品が出荷されており、90000以上のスキルが公開されている
- Echoを始めとしたスピーカー、タブレット、TVなど1億人以上の手にAlexa built-inのデバイスが届いている
- AVSの仕組み
- Alexaはクラウドベース
- ユーザーがAVSの入っている製品に話しかけると、クラウドにてASR、NLUなどを通じてその意図が解釈され、バックエンドに送られる
- 例えば「Alexa, will I need an umbrella tomorrow?(アレクサ、明日傘いる?)」と聴くと、サーバー上では「DOMAIN: WEATHER / INTENT: RAIN / DATE: TOMORROW」といった要素に分解され、バックエンドのスキルに情報としてリクエストされる
- スキルはその情報を元に処理を行い、レスポンスをAlexaに返す
- AlexaはTTSを使ってそのレスポンスを音声に変更してスピーカーからユーザーに返す
- Works with Alexa(Smart Home Devices)の場合
- スキルで処理した結果を、それぞれの家電からメーカーのクラウドを通じて指示が送られる
- スマートスイッチ
- AWS IoTを通じて現実のものを操作する。今回のワークショップのテーマ
- 開発者に向けてのAlexaは3種類
- AVS: Alexaを音声認識の製品に組み込む
- ASK: 音声認識体験の構築
- Alexa Smart Home and Gadgets: Works with Alexaで動く製品を開発する
- Acoustic Echo Cancellation(AEC)
- ノイズリダクションのアルゴリズムにて、マイクの音声から声以外の音を減衰させる
- Wake Word Engine
- キーワードを聞き取る機能。このケースでは「Alexa」
- クラウドベースでWake Wordの検証が行われることでCX(顧客体験)を向上させる
- AVS Client SoftWare
- Event: ClientからAlexaへ
- Directive: AlexaからClientへ
- AVS Client Software Solutions
- alexa.design/AVSdeviceSDK
- C++ライブラリ
- Github.ioで無料公開
- 製品のカテゴリ
- スピーカー
- スマートスクリーン
- ヘッドフォン
- スマートホーム
- TV
- 詳細は alexa.design/AVStutorials で
Alexa on Devices
- 音声連携のモデル
- タッチやタップすることで立ち上がるタイプ
- ハンズフリーで遠くからでも声で立ち上がるタイプ
ワークショップ
ということで、ワークショップに入りました。今回のフローはこんな感じになります。
ラズパイにAVSを入れて、そのラズパイにブレイクボードをつなげ、LEDを配置します。
ラズパイにはUSBのマイクとイヤホンを挿し、ラズパイに話しかけることでAlexaにリクエストを送ります。
スキル側ではLambdaとAWS IoTを連携して、スキルからのリクエストをThings Shadowを変更することで処理します。
ラズパイにはAWS IoT SDKも組み込まれているので、コードを書いてnodeで立ち上げておくことで、Shadowの変更を検知し、LEDが点く、という仕組みになります.
このデモの中にAVS、AWS IoT(IoT Shadow)、ASKを使った構築が組み込まれており、特にIoTの知識がない人はしんどいかもしれない、と最初は感じました。
用意されていたもの
ワークショップで用意されていたのは
- Raspberry Pi(またはそれに類するシングルボードコンピュータ)
- USBマイク
- キーボードとマウス
- 5mmジャックのついた有線イヤホン
- EthernetまたはWi-Fi
- micro USBケーブル(電源用)
- マイクロSDカード
- ブレイクボード
- ラズパイとブレイクボードをつなげるGPIOピンまたはbreakoutボード
- LEDライト(赤、青、緑)
- 220Ωの抵抗 x 3
- 10kΩの抵抗 x 1
- ブレイクボードに挿せるスイッチ
- ジャンパー線(赤、青、緑、黄)
でした。
配られたSDカードの中にすでにAVSもAWS IoT SDKも入っていて、ご丁寧にインストールスクリプトやサンプルアプリケーションまで入っていましたので、ただテキストを上からなぞっていけばなんとかなる、というものでした。最初は知識によって進捗バラけそうだな、と思っていたのですが、ここまで用意してあると(コードもほぼコピペ)、作り上げること自体は楽勝です。
テキスト: https://avs-dvk-workshop.github.io/
壁紙もきっちり作り込んでいますね。
ただボードがラズパイなので接触が悪くなったり、突然落ちたり、という組み込みあるあるも起こりました。
更に今回は開発も全てラズパイ上で行うことになっていたので、いつものクセで4枚も5枚もブラウザのタブを開くと、それだけで激重になります。久々に「メモリを節約する」という事をしました。
まとめ
ということでre:MARS初めてのセッションはワークショップでした。一日やりましたが日本人、外国人、両方の知り合いができて楽しかったです。
おそらくサンプルアプリ系はAmazonのgithubにあるものでいけそうなので、やってみたいかたは是非挑戦してみてください。